/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Dao;

import Beans.LineaBean;
import Conexion.Conexion;
import java.sql.ResultSet;
import java.util.Vector;

/**
 *
 * @author orellana
 */
public class LineaDAO {

    // Atributos de la clase
    public static String INSERT_DATOS_LINEA = "INSERT INTO cat_linea_productos(nombreLineaProducto, descripcionLineaProducto, fechaAlta, idEstado) VALUES";
    public static String GET_DATOS_LINEAS = "SELECT idLineaProducto, nombreLineaProducto, descripcionLineaProducto FROM cat_linea_productos WHERE idEstado=1 ORDER BY nombreLineaProducto;";
    public static String GET_DATOS_LINEA =  "SELECT nombreLineaProducto, descripcionLineaProducto, idLineaProducto FROM cat_linea_productos WHERE idLineaProducto= ";
    public static String GET_ID_LINEA="SELECT auto_increment FROM information_schema.tables WHERE table_schema='bd_pegaso' AND table_name='cat_linea_productos'";

    public static String DELETE_DATOS_LINEA="UPDATE cat_linea_productos SET idEstado=2 WHERE ";
    public static String UPDATE_DATOS_LINEA="UPDATE cat_linea_productos SET ";
    public static String GET_DATOS_LINEA_ACTIVOS = "SELECT idLineaProducto, nombreLineaProducto, descripcionLineaProducto FROM cat_linea_productos WHERE ";
    public static String GET_NOMBRE_LINEA_ID="SELECT idLineaProducto FROM cat_linea_productos ";
    public static String GET_DATOS_LINEA_COMBO="SELECT nombreLineaProducto,idLineaProducto FROM cat_linea_productos WHERE idEstado=1";

    // Metodos publicos
    // Insertamos los datos de la categoria
    public Vector insertDatosLinea (LineaBean lineaBean, Conexion conect){
        // Variables locales
        Vector resultDatos=new Vector();

        // Insertamos los datos de las lineas
        try {
            conect.getPreparedStatement().execute(INSERT_DATOS_LINEA +"('"+lineaBean.getNombreLinea() +"'"+",'"+lineaBean.getDescripcionLinea()+"'"+",NOW()"+",1);");
            resultDatos.add("OK");
        } catch (Exception e) {
            resultDatos.add("ERROR");
            // Mensaje en consola
            System.out.println("Erro: "+e);
        }
        // Retornamos el valor
        return resultDatos;
    }

    // Obtenemos los datos de las lineas
    public Vector getDatosLineas (LineaBean lineaBean, Conexion conect){
    // Variables locales
        Vector resultDatos=new Vector();
        // Obtenemos los datos de la linea
        try{
        ResultSet resultSet = conect.getPreparedStatement().executeQuery(GET_DATOS_LINEAS);
            while (resultSet.next()){
            LineaBean getDatosLineas=new LineaBean();
            getDatosLineas.setNombreLinea(resultSet.getString("nombreLineaProducto"));
            getDatosLineas.setDescripcionLinea(resultSet.getString("descripcionLineaProducto"));
            getDatosLineas.setIdLinea(resultSet.getString("idLineaProducto"));
            resultDatos.add(getDatosLineas);
            }
        } catch (Exception e) {
            // Mensaje en consola
            System.out.println("ERROR: " +e);
        }
            // Retornamos el valor
            return resultDatos;
    }

    // Obtenemos los datos de la linea
    public Vector getDatosLinea (LineaBean lineaBean, Conexion conect){
    // Variables locales
        Vector resultDatos=new Vector();
        // Obtenemos los datos de la linea
        try{
           //  System.out.println("consulta "+ GET_DATOS_LINEA + lineaBean.getIdLinea() + " AND idEstado=1");
        ResultSet resultSet = conect.getPreparedStatement().executeQuery(GET_DATOS_LINEA + lineaBean.getIdLinea() + " AND idEstado=1");
      
            while (resultSet.next()){
            LineaBean getDatosLinea=new LineaBean();
            getDatosLinea.setNombreLinea(resultSet.getString("nombreLineaProducto"));
            getDatosLinea.setDescripcionLinea(resultSet.getString("descripcionLineaProducto"));
            getDatosLinea.setIdLinea(resultSet.getString("idLineaProducto"));
            resultDatos.add(getDatosLinea);
            }
        } catch (Exception e) {
            // Mensaje en consola
            System.out.println("ERROR: " +e);
        }
            // Retornamos el valor
            return resultDatos;
    }

        // Obtenemos id de la linea
    public Vector getIdLinea (LineaBean lineaBean, Conexion conect){
    // Variables locales
        Vector resultDatos=new Vector();
        // Obtenemos los datos de la linea
        try{
        ResultSet resultSet = conect.getPreparedStatement().executeQuery(GET_ID_LINEA);
            while (resultSet.next()){
            LineaBean getIdLinea=new LineaBean();
           
            getIdLinea.setIdLinea(resultSet.getString("auto_increment"));
            resultDatos.add(getIdLinea);
            }
        } catch (Exception e) {
            // Mensaje en consola
            System.out.println("ERROR: " +e);
        }
            // Retornamos el valor
            return resultDatos;
    }

    // Eliminamos los Datos de la linea (Logica)
    public Vector deleteDatosLinea(LineaBean lineaBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Eliminamos los Datos dela linea
        try {
            conect.getPreparedStatement().execute(DELETE_DATOS_LINEA+
                    "idLineaProducto="+lineaBean.getIdLinea());
            resultDatos.add("OK");
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR :"+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

       // Actualizamos los Datos delas lineas
    public Vector updateDatosLinea(LineaBean lineaBean,Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Actualizamos los Datos delas lineas
        try {
            conect.getPreparedStatement().execute(UPDATE_DATOS_LINEA+
                    " nombreLineaProducto='"+lineaBean.getNombreLinea()+"'"+
                    ",descripcionLineaProducto='"+lineaBean.getDescripcionLinea()+"'"+
                    ",fechaModificacion=NOW() WHERE idLineaProducto="+lineaBean.getIdLinea());
            resultDatos.add("OK");
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : "+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Busqueda de lineas Registradas con Estatus Activo (1)
    public Vector buscarDatosLineaActivo(LineaBean lineaBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Buscamos los Clientes Registrados
        try {
            ResultSet resultSet=conect.getPreparedStatement().executeQuery(GET_DATOS_LINEA_ACTIVOS+
                    "nombreLineaProducto LIKE '%"+lineaBean.getNombreLinea()+"%' AND idEstado = 1 ORDER BY nombreLineaProducto");
            while(resultSet.next()){
                LineaBean getDatosLineaActivo=new LineaBean();
                getDatosLineaActivo.setNombreLinea(resultSet.getString("nombreLineaProducto"));
                getDatosLineaActivo.setDescripcionLinea(resultSet.getString("descripcionLineaProducto"));
                getDatosLineaActivo.setIdLinea(resultSet.getString("idLineaProducto"));
                resultDatos.add(getDatosLineaActivo);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR :"+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Obtenemos el ID Linea de Producto por Nombre
    public Vector getIdLineaProducto(LineaBean lineaBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos el ID Linea de Producto por Nombre
        try {
            ResultSet resultSet=conect.getPreparedStatement().executeQuery(GET_NOMBRE_LINEA_ID +
                    "WHERE nombreLineaProducto='"+lineaBean.getNombreLinea()+"'");
            while(resultSet.next()){
                LineaBean getDatosLinea=new LineaBean();
                getDatosLinea.setIdLinea(resultSet.getString("idLineaProducto"));
                resultDatos.add(getDatosLinea);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR :"+e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

     // Busqueda de lineas Registrados con Estatus Activo (1) para mostrarlo en el combo
    public Vector buscarDatosLineaCombo(LineaBean lineaBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Buscamos bancos Registrados
        try {
            ResultSet resultSet=conect.getPreparedStatement().executeQuery(GET_DATOS_LINEA_COMBO);
            while(resultSet.next()){
                LineaBean getDatosLineaCombo=new LineaBean();
                getDatosLineaCombo.setNombreLinea(resultSet.getString("nombreLineaProducto"));
                getDatosLineaCombo.setIdLinea(resultSet.getString("idLineaProducto"));
                resultDatos.add(getDatosLineaCombo);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR :"+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }
}
